package com.ziq.zcamp.api.service

import com.ziq.zcamp.api.request.camp.*
import com.ziq.zcamp.api.respond.CampBaseRespond
import com.ziq.zcamp.api.respond.EncryptionRespond
import com.ziq.zcamp.api.respond.camp.*
import com.ziq.zcamp.api.respond.post.PostingListRespond
import io.reactivex.Observable
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.QueryMap


interface CampService {


    @POST(CAMP_CAMP_LIST_SEARCH)
    fun campListSearch(@Body params: CampListSearchParam): Observable<CampListRespond> //CampRankListRespond

    @GET(ALL_CITY_LIST_API)
    fun campAllCityList(@QueryMap params: HashMap<String, Any>): Observable<AllAreaListRespond?>

    @POST(CAMP_CONDITION_TREE_API)
    fun campConditionTree(@Body params: CampConditionTreeParam): Observable<CampListConditionListRespond?>

    @POST(CAMP_RANK_LIST_API)
    fun campRankList(@Body params: CampRankListParam): Observable<CampRankListRespond> //CampRankListRespond

    @POST(CAMP_NATION_NUM_API)
    fun campNationNumList(@Body params: CampNationNumListParam): Observable<CampNationNumListRespond>

    @GET(CAMP_HOT_CONDITION_LIST_API)
    fun campHotConditionList(@QueryMap params: HashMap<String, Any>): Observable<CampHotConditionListRespond>


    @GET(PLACE_DETAIL_API)
    fun placeDetail(@QueryMap params: HashMap<String, Any>): Observable<PlaceDetailRespond>




    @POST(CAMP_COLLECT_API)
    fun campCollectStatusUpdate(@Body params: CampCollectParam): Observable<CampBaseRespond>



    @GET(PLACE_PRODUCT_LIST_API)
    fun placeDetailProductList(@QueryMap params: HashMap<String, Any>): Observable<PlaceProductListRespond>

    @GET(CAMP_ONLINE_COUPON_LIST)
    fun couponCampOnlineList(@QueryMap params: HashMap<String, Any>): Observable<CouponCampOnlineListRespond>

    @POST(CAMP_PUNCH_LIST_API)
    fun campPunchList(@Body params: CampPunchListParam): Observable<PostingListRespond>



    @GET(GREEN_CAMP_AGREE_STATUS_API)
    fun greenCampAgreeStatus(@QueryMap params: HashMap<String, Any>): Observable<GreenCampAgreeStatusRespond>

}